/*
 * Copyright (C) 2015 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.tools.idea.run.editor;

import static com.android.tools.idea.flags.StudioFlags.SUPPORT_CUSTOM_ARTIFACTS;

import com.intellij.ui.ColoredListCellRenderer;
import java.util.Arrays;
import java.util.List;
import org.jetbrains.annotations.NotNull;

import javax.swing.*;

public enum InstallOption {
  DEFAULT_APK("Default APK"),
  APK_FROM_BUNDLE("APK from app bundle"),
  CUSTOM_ARTIFACT("Custom Artifact"),
  NOTHING("Nothing");

  public final String displayName;

  InstallOption(@NotNull String displayName) {
    this.displayName = displayName;
  }

  public static List<InstallOption> supportedValues() {
    if (SUPPORT_CUSTOM_ARTIFACTS.get()) {
      return Arrays.asList(InstallOption.values());
    } else {
      return List.of(DEFAULT_APK, APK_FROM_BUNDLE, NOTHING);
    }
  }

  public static class Renderer extends ColoredListCellRenderer<InstallOption> {
    @Override
    protected void customizeCellRenderer(@NotNull JList list, InstallOption option, int index, boolean selected, boolean hasFocus) {
      append(option.displayName);
    }
  }
}
